/*
 * @Descripttion: 
 * @version: 
 * @Author: ada.wu
 * @Date: 2023-11-03 23:36:43
 * @LastEditors: ada.wu
 * @LastEditTime: 2023-11-06 21:49:22
 */
import Mock from 'mockjs'

/**
 * Members 模拟数据
 */
class ControlMock {

    // 显示资源列表
    recordTaskAll(option) {
        let param = this.parseOption(option);
        console.log('[资产管理模拟数据] 显示资源列表 param=', param, '&option=', option);
        // 可以通过传参 _success 来控制返回消息的成功状态。
        return Mock.mock({
            success: param._success, // '@boolean'
            message: '@ctitle',
            code: 200,
            data: {
                totalCount: '@integer(0,10)',
                current_page: 1,
                last_age: '@integer(1,5)',
                'list|1-10': [{
                    'id': '@increment', // ID
                    "roomName": "教室@integer(0,10)",//教室
                    "courseName": "测试课程@integer(0,10)",//课程名称
                    "teacherName": "@cname",//教师名称
                    'startTime': '@datetime("HH:mm:ss")', // 录制时间
                    'endTime': '@datetime("HH:mm:ss")', // 录制时间
                    "taskType": '@integer(0,2)',//发布状态
                    "note": "http://资源地址/文件名@integer(100,999)",//备注
                }],
            },
        })
    }
    liveTaskAll(option) {
        let param = this.parseOption(option);
        console.log('[资产管理模拟数据] 显示资源列表 param=', param, '&option=', option);
        // 可以通过传参 _success 来控制返回消息的成功状态。
        return Mock.mock({
            success: param._success, // '@boolean'
            message: '@ctitle',
            code: 200,
            data: {
                totalCount: '@integer(0,10)',
                current_page: 1,
                last_age: '@integer(1,5)',
                'list|1-10': [{
                    'id': '@increment', // ID
                    "image": 'https://img2.woyaogexing.com/2023/01/29/e904cd20246d38fc5acbc6ac34c6c844.jpeg',//标题
                    "title": '标题@integer(0,3)',//标题
                    'startTime': '@datetime("yyyy-MM-dd HH:mm:ss")', // 录制时间
                    'endTime': '@datetime("yyyy-MM-dd HH:mm:ss")', // 录制时间
                    "teacherName": "@cname",//教师名称
                    "taskType": '@integer(0,2)',//发布状态
                    'interactRoom': '教室@integer(1,2)', // 所属教室
                    'academyName': '学院@integer(1,2)', // 所属教室
                    'majorName': '专业@integer(1,2)', // 所属教室
                    "roomName": "教室@integer(0,10)",//课程名称
                    "courseName": "测试课程@integer(0,10)",//课程名称
                    "taskStatus": '@integer(0,2)',//拉取状态                         0、失败，1成功、，2、未拉取,
                    "note": "http://资源地址/文件名@integer(100,999)",//备注
                }],
            },
        })
    }
    // 显示资源列表
    playLog(option) {
        let param = this.parseOption(option);
        console.log('[资产管理模拟数据] 显示资源列表 param=', param, '&option=', option);
        // 可以通过传参 _success 来控制返回消息的成功状态。
        return Mock.mock({
            success: param._success, // '@boolean'
            message: '@ctitle',
            code: 200,
            data: {
                totalCount: '@integer(0,10)',
                current_page: 1,
                last_age: '@integer(1,5)',
                'list|1-10': [{
                    'id': '@increment', // ID
                    "actionTime": '@datetime("yyyy-MM-dd HH:mm:ss")',
                    "roomName": "测试教室'@integer(1,2)",
                    "userName": "测试用户'@integer(1,2)",
                    "recordingIp": "@ip",
                    "actionName": "拉取文件",
                    "actionResult": "@integer(1,3)"
                }],
            },
        })
    }
    roomInfo(option) {
        let param = this.parseOption(option);
        console.log('[资产管理模拟数据] 显示资源列表 param=', param, '&option=', option);
        // 可以通过传参 _success 来控制返回消息的成功状态。
        return Mock.mock({
            success: param._success, // '@boolean'
            message: '@ctitle',
            code: 200,
            data: {
                totalCount: '@integer(0,10)',
                current_page: 1,
                last_age: '@integer(1,5)',
                'list|1-10': [{
                    'id': '@increment', // ID
                    "name": "测试教室@integer(100,999)",//教室
                    "campusId": 1,//校区
                    'campusName': '@string("upper", 1)区',//资源地址
                    "buildingId": 1,//教学楼
                    'buildingName': '教学楼@integer(100,999)', // 教学楼
                    "recordingIp": "@ip",//录播主机IP
                    "onclass": "@integer(0,1)", //上课状态
                    "courseName": "测试课程@integer(1,2)",//课程名称
                    "academyName": "学院@integer(1,2)",//学院
                    "majorName": "专业@integer(1,2)",//专业
                    "teacherName": "教师@integer(1,2)",//教师名称
                    "status": "@integer(1,2)",//盒子状态
                    "taskStatus": "@integer(0,2)",//当前状态，0、空闲，1、直播中，2、录制中,
                    "liveStartTime": '@datetime(HH:mm:ss)',
                    "liveEndTime": '@datetime(HH:mm:ss)',
                    "recordStartTime": '@datetime(HH:mm:ss)',
                    "recordEndTime": '@datetime(HH:mm:ss)',
                }],
            },
        })
    }
    playLogAll(option) {
        let param = this.parseOption(option);
        console.log('[资产管理模拟数据] 显示资源列表 param=', param, '&option=', option);
        // 可以通过传参 _success 来控制返回消息的成功状态。
        return Mock.mock({
            success: param._success, // '@boolean'
            message: '@ctitle',
            code: 200,
            data: {
                totalCount: '@integer(0,10)',
                current_page: 1,
                last_age: '@integer(1,5)',
                'list|1-10': [{
                    'id': '@increment', // ID
                    "actionTime": '@datetime("yyyy-MM-dd HH:mm:ss")',
                    "roomName": "测试教室'@integer(1,2)",
                    "userName": "测试用户'@integer(1,2)",
                    "recordingIp": "@ip",
                    "actionName": "拉取文件",
                    "actionResult": "@integer(1,3)"
                }],
            },
        })
    }
    playLogList(option) {
        let param = this.parseOption(option);
        console.log('[资产管理模拟数据] 显示资源列表 param=', param, '&option=', option);
        // 可以通过传参 _success 来控制返回消息的成功状态。
        return Mock.mock({
            success: param._success, // '@boolean'
            message: '@ctitle',
            code: 200,
            data: {
                totalCount: '@integer(0,10)',
                current_page: 1,
                last_age: '@integer(1,5)',
                'list|1-10': [{
                    'id': '@increment', // ID
                    "image": 'https://img2.woyaogexing.com/2023/01/29/e904cd20246d38fc5acbc6ac34c6c844.jpeg',//封面
                    "title": '×××××@integer(0,3)',//标题
                    "courseName": "语文@integer(0,10)",//课程名称
                    "academyName": "计算机学院@integer(0,10)",//所属院系
                    "majorName": "软件工程@integer(0,10)",//所属专业
                    "teacherName": "@cname",//教师名称
                    "pageviews": '@integer(0,3)',//浏览量
                    'roomName': '1@integer(1,2)7-@integer(1,2)', // 所属教室
                    'topicName': '本科课程', // 分类
                    "semesterName": '@integer(2020,2023)-@integer(2020,2023)第@integer(0,3)学期',//学期
                    "course": '公开课',//课程性质
                    "reason": '@integer(0,1)',//状态
                    "liveMode": '@integer(0,1)',//状态
                    'actionTime': '@datetime("yyyy-MM-dd HH:mm:ss")', // 录制时间
                    'address': 'http://资源地址/文件名@integer(100,999)',//资源地址
                    "releaseState": '@integer(0,1)',//发布状态
                    "note": "备注",//备注
                }],
            },
        })
    }

    // 解析参数 option= {url:'/api/read?id=1', type:'GET', data:null}
    parseOption(option) {
        let param = {}
        if (option.url.indexOf('?') > -1) {
            new URLSearchParams(option.url.substring(option.url.indexOf('?') + 1)).forEach((v, k) => {
                param[k] = v;
            })
        }
        if (option.body) {
            if (option.body instanceof FormData) {
                option.body.forEach((v, k) => {
                    param[k] = v;
                })
            } else {
                param = JSON.parse(option.body);
            }
        }
        // 可以通过传参 _success 来控制返回消息的成功状态。默认返回成功消息。
        if (typeof (param._success) != 'boolean') {
            param._success = true;
        }
        return param;
    }

    // 返回标准消息对象
    stdMessage(success, message, data = '', code = 0) {
        return {
            success: success,
            message: message,
            data: data,
            code: code,
        }
    }
}

export default new ControlMock;